package com.liangzhong.model.match
{
	import flash.utils.ByteArray;

	/**
	 * 球员状态
	 * @author lxh
	 * 
	 */	
	public class PlayerStatus
	{
		/**
		 *表示对比时间，
		 * 例如：0表示现在的事件；1、2、3、4表示0.2、0.4、0.6、0.8秒之后的事件，上限是10 
		 */		
		public var timeDelay		:int;
		/**
		 *0：表示球
			1-11：A队球员编号
			12-22：B队球员编号 
		 */		
		public var playerIndex 		:int;
		/**
		 *动作编号（每个动作都会消耗时间，基本时间单位：0.2秒，以射门为例：射门会消耗4个0.2秒，客户端不需要用此数值，但要清楚）：
		1：低速移动（走）
		2：快速移动（跑）
		3：左右移动（横向移动）
		4：带球移动
		10：传球（3）
		11：长传（4）
		12：铲球（6）
		13：射门（5）
		14：头球（5）
		15：发边线球（6）
		16：角球（7）
		30：守门员扑球（8）
		31：守门员掷球（4） 
		 */		
		public var actionType 		:int;
		/**
		 * X点坐标（范围：从左到右0-7000）
		 */		
		public var posX 			:Number;
		/**
		 * X点坐标（范围：从左到右0-7000）
		 */		
		public var posY 			:Number;
		/**
		 *速度：表示每0.2秒移动的距离 
		 */		
		public var speed			:int;
		
		public function PlayerStatus()
		{
		}
		/**
		 * 
		 * @param data
		 * 
		 */		
		public function readData(data : ByteArray):void
		{
			timeDelay  = data.readUnsignedByte();
			playerIndex = data.readUnsignedByte();
			actionType  = data.readUnsignedByte();
			posX = data.readShort();
			posY = data.readShort();
			speed = data.readShort();
		}
		public function toString():String
		{
			return "{timeDelay:" + timeDelay + ",playerIndex:" + playerIndex + ",actionType:" + actionType + ",posX:" + posX + ",posY:" + posY + ",speed:" + speed +"}"
		}
		/**
		 *解析记录中数据
		 * @param obj
		 */		
		public function parseHistoryData(obj :Object):void
		{
			for(var str:String in obj)
			{
				if(this.hasOwnProperty(str))
				{
					this[str] = obj[str];
				}
			}
		}
	}
}